language: go

go:
  - 1.6
  - 1.7
  - 1.8
  - tip

os:
  - linux
  - osx

sudo: false

branches:
  only:
    - master
    - develop

services:
  # github.com/revel/revel/cache
  - memcache
  - redis-server

before_install:
  # TRAVIS_OS_NAME - linux and osx
  - echo $TRAVIS_OS_NAME
  - |
    if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
      brew update && brew install memcached redis && brew services start redis && brew services start memcached
    fi
  - redis-server --daemonize yes
  - redis-cli info

install:
  # Setting environments variables
  - export PATH=$PATH:$HOME/gopath/bin
  - export REVEL_BRANCH="develop"
  - 'if [[ "$TRAVIS_BRANCH" == "master" ]]; then export REVEL_BRANCH="master"; fi'
  - 'echo "Travis branch: $TRAVIS_BRANCH, Revel dependency branch: $REVEL_BRANCH"'
  - git clone -b $REVEL_BRANCH git://github.com/revel/modules ../modules/
  - git clone -b $REVEL_BRANCH git://github.com/revel/cmd ../cmd/
  - git clone -b $REVEL_BRANCH git://github.com/revel/config ../config/
  - git clone -b $REVEL_BRANCH git://github.com/revel/cron ../cron/
  - git clone -b $REVEL_BRANCH git://github.com/revel/examples ../examples/
  - go get -v github.com/revel/revel/...
  - go get -v github.com/revel/cmd/revel

script:
  - go test -v github.com/revel/revel/...

  # Ensure the new-app flow works (plus the other commands).
  - revel version
  - revel new     my/testapp
  - revel test    my/testapp
  - revel clean   my/testapp
  - revel build   my/testapp build/testapp
  - revel build   my/testapp build/testapp prod
  - revel package my/testapp
  - revel package my/testapp prod

  # Commented out persona test sample, since persona.org gonna be shutdown.
  # Also http://personatestuser.org becomes non-responsive most of the time.
  # https://wiki.mozilla.org/Identity/Persona_Shutdown_Guidelines_for_Reliers
  # - revel test github.com/revel/examples/persona

matrix:
  allow_failures:
    - go: tip
